package org.rslai.tcedit.business;

import java.util.List;
import org.rslai.tcedit.domain.Page;
import org.rslai.tcedit.domain.ProductUser;
import org.springframework.transaction.annotation.Transactional;

/**
 * 产品用户 业务逻辑接口
 * @author rslai
 */
@Transactional
public interface ProductUserService extends BaseService {

	/***
	 * 根据输入的 productID、用户名、真实姓名、email 查询产品用户列表
	 * @param productID 产品ID
	 * @param page page
	 * @param username 用户名，前后加 % 号为模糊查询，例如：%user%。不加 % 为精确查询。 只有 % 为查询所有
	 * @param realName 真实姓名，前后加 % 号为模糊查询，例如：%user%。不加 % 为精确查询。 只有 % 为查询所有
	 * @param email email，前后加 % 号为模糊查询，例如：%user%。不加 % 为精确查询。 只有 % 为查询所有
	 * @param asc true 为升序，false 为降序
	 * @return 产品用户列表
	 */
	@Transactional(readOnly = true)
	public List<ProductUser> query(String productID, Page page, String username, String realName, String email, boolean asc);

	/**
	 * 根据输入的 productID 产品用户列表
	 * @param productID 产品ID
	 * @return
	 */
	@Transactional(readOnly = true)
	public List<ProductUser> query(String productID);

	/**
	 * 根据输入的 productID 和 userID 返回产品用户列表
	 * @param productID 产品ID
	 * @param userID 用户ID
	 * @return 此产品下此用户的产品用户列表
	 */
	@Transactional(readOnly = true)
	public List<ProductUser> query(String productID, String userID);

}
